\subsection{Priorité}

\paragraph{Présentation}
La priorité permet à des \textit{threads} de s'exécuter plus rapidement que les autres. Pour qu'un \textit{thread} plus prioritaire s'exécute plus rapidement: on peut soit lui donner plus souvent la main, soit augmenter la durée de sa \textit{time slice}. Nous avons opté pour la solution jouant sur la durée des \textit{time slices}.

\paragraph{Implémentation}
Nous avons rajouté une fonction dans le \texttt{thread.h} permettant d'affecter une priorité. La priorité d'un \textit{thread} peut varier de -20 à 20. Plus la priorité est élevée, moins la durée de la \textit{time slice} sera longue.

La priorité est stockée sous la forme d'un entier dans la structure \texttt{struct thread}. Quand on met en place l'alarme, on prend en compte la priorité dans le calcul de la durée.

\paragraph{Tests}
Pour tester les priorités, le test de la préemption a été repris et modifié dans \texttt{62-priorite.c}. On affecte au premier \textit{thread} la priorité minimum et au deuxième la maximum. On peut voir lors de l'exécution que le deuxième \textit{thread} termine, puis le \textit{main} et enfin le premier \textit{thread}. Comme aucune priorité n'a été affectée au main, il a la priorité par défaut qui est 0 et donc cela explique pourquoi il termine en deuxième.
